package cn.mulanbay.common.config;

import java.text.MessageFormat;

/**
 * 缓存的key 常量
 *
 * @author fenghong
 * @create 2022-01-16 10:00
 */
public class CacheKey {

    /**
     * 令牌自定义标识
     */
    public static final String HEADER = "Authorization";

    /**
     * 令牌前缀
     */
    public static final String TOKEN_PREFIX = "Bearer ";

    /**
     * cookie里面使用
     */
    public static final String TOKEN_KEY = "Admin-Token";

    /**
     * 权限缓存前缀
     */
    public final static String LOGIN_TOKEN_KEY = "login_tokens:{0}";

    /**
     * 用户ID字段
     */
    public static final String DETAILS_USER_ID = "user_id";

    /**
     * 用户名字段
     */
    public static final String DETAILS_USERNAME = "username";

    /**
     * 角色字段
     */
    public static final String DETAILS_ROLE_ID = "role_id";

    /**
     * 令牌前缀
     */
    public static final String LOGIN_USER_KEY = "login_user_key";

    /**
     * 用户登录失败次数（用户名称/手机号）
     */
    public static final String USER_LOGIN_FAIL = "userLoginFail:{0}";

    /**
     * 验证码
     */
    public static final String CAPTCHA_CODE = "captcha:code:{0}";

    /**
     * 用户锻炼数据(索引)
     */
    public static final String USER_EXEC_DATA_INDEX = "user:realExerciseDataIndex";

    /**
     * 用户锻炼数据(用户编号，机器编号)
     */
    public static final String USER_EXEC_DATA = "user:realExerciseData:{0}:{1}";

    /**
     * 机器锻炼数据(机器编号)
     */
    public static final String MACHINE_EXEC_DATA = "machine:realExerciseData:{0}";

    /**
     * 微信WX_JSAPI_TICKET（appid）
     */
    public static final String WX_JSAPI_TICKET = "wx:jsApi:ticket:{0}";

    /**
     * 微信的授权状态（state）
     */
    public static final String WX_AUTH_STATE = "wx:auth:state:{0}";

    /**
     * 微信的授权状态用户信息（userId）
     */
    public static final String WX_AUTH_STATE_USER = "wx:auth:state:user:{0}";

    /**
     * 系统详情监控
     */
    public static final String SERVER_DETAIL_MONITOR_TIMELINE = "server：detail:monitor:timeline";

    /**
     * 用户错误代码(用户编号，错误代码)
     */
    public static final String USER_ERROR_CODE_LIMIT = "user:errorCode:{0}:{1}";

    /**
     * 用户最后一条消息(用户编号)
     */
    public static final String USER_LATEST_MESSAGE = "user:latestMessage:{0}";

    /**
     * @param pattern
     * @param args
     * @return
     */
    public static String getKey(String pattern, String... args) {
        return MessageFormat.format(pattern, args);
    }

}
